package com.blockchain.securewallet.utils;

import com.blockchain.securewallet.tools.AddressCheck;

import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by Lopez on 2018/5/28.
 */
public class ToolUtils {

    /**
     * 正确的由数字和小数点组成的金钱形式
     *
     * @param source 需要判断的输入框value
     * @return
     */
    public static boolean isMoneyNumber(String source) {
        String money = "^(([1-9][0-9]*\\.[0-9][0-9]*)|([0]\\.[0-9][0-9]*)|([1-9][0-9]*)|([0]{1}))$";
        Pattern pattern = Pattern.compile(money);
        Matcher matcher = pattern.matcher(source);
        if (matcher.matches()) {
            return true;
        } else {
            return false;
        }
    }

    //对最后1位为小数点的，另作判断，暂不提示
    public static boolean lastPointJudge(String text) {
        if (text.contains(".") && text.lastIndexOf(".") == text.length() - 1) {
            ToastUtils.showToast("最后1位不能为小数点");
            return true;
        }
        return false;
    }

    public static boolean isListEmpty(List<?> list) {
        return list == null || list.size() <= 0;
    }


    /**
     * 这里的是正则表达式做的判断
     *
     * @param source 要校验的地址
     * @return
     */    
/*    //判断是不是正确的地址格式  //暂时设置6位来测试
    public static boolean isCorrectAddress(String source) {
        // 地址格式的正则表达式      //至少包含数字+字母
        // {3,6}表示长度在3-6，前包后也包 //  {6}表示长度限制为6
        // ^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{3,6}$

        String target = source.toLowerCase();
        *//*String format = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{42}$";

        if (!target.contains("0x")) {
            format = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{40}$";
        }
        *//*

        //暂时长度允许为31-46位
        String format = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{31,46}$";

        Pattern pattern = Pattern.compile(format);
        Matcher matcher = pattern.matcher(source);
        if (matcher.matches()) {
            return true;
        } else {
            return false;
        }
    }    */

    //判断是不是正确的地址格式
    public static boolean isCorrectAddress(String source) {
        //返回null则表示当前地址无效
        String address = AddressCheck.find_address(source);
        Logger.ds("校验-返回的address: " + address);
        if (StringUtil.noEmpty(address)) {
            return true;
        } else {
            return false;
        }
    }
    

}
